package com.dxf.chepter08

/**
 *  用多了自然会记住,了解一下
 *  操作符扩展:
 *
 *
 *
 */
object T105_操作符重载 {


  def main(args: Array[String]): Unit = {
    //1 取关键字名字:
    val `val` = 42
    println(`val`)
    //2 中置操作符 A 操作符 B 等价于 A.操作符(B)
    val a = 0
    val b = 1
    val r1 = a + b
    val r2 = a.+(b)
    val aa = new Aa

    var res1 = aa + 10
    println(aa.money)
    var res2 = aa.+(10)
    println(aa.money)

    //3后置操作符 A操作者 等同于 A.操作符
    println(aa++)
    println(aa.++)
    println(aa.money)

    //4 前置操作符  + - ! ~ 等操作符 A等同于A.unary操作符
   !aa



  }


}

class Aa {
  var money: Int = 0

  def +(num: Int): Unit = {
    this.money += num
  }

  def ++(): Unit = {
    this.money += 1
  }
  //unary 不能删除,就可以使用!了
  def unary_! =println("!!!!!!!!!!")

}

